/*
*	Copyright (c) 2009 Brent Mombourquette
*
*	Permission is hereby granted, free of charge, to any person
*	obtaining a copy of this software and associated documentation
*	files (the "Software"), to deal in the Software without
*	restriction, including without limitation the rights to use,
*	copy, modify, merge, publish, distribute, sublicense, and/or sell
*	copies of the Software, and to permit persons to whom the
*	Software is furnished to do so, subject to the following
*	conditions:
*
*	The above copyright notice and this permission notice shall be
*	included in all copies or substantial portions of the Software.
*
*	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
*	EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
*	OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
*	NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
*	HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
*	WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
*	FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
*	OTHER DEALINGS IN THE SOFTWARE.
*
*	This file contains the functions for the Options tab of graph_page.html and their helper methods.
*/

var trailVisible = false;

var optionsTab = {
	/*
	 * Determine if the session can be saved. If the current session is filtered then it cannot be saved.
	 */
	preSaveSession: function() {
		var filterText = document.getElementById("filteringText").innerHTML;
		var filterSet = filterTab.isFiltered(filterText);
		if (!filterSet) {
			// There is no filter so we can save
			manipulateGraph.saveCords();
			sessionControl.saveSession();
		} else {
			var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                      .getService(Components.interfaces.nsIPromptService);
			prompts.alert(null, "Unable to Save Session", "Please unfilter the graph prior to saving.");
		}
	},
	
	/*
	 * Load a session.
	 * Globals: graphParticles [from manipulate_graph.js]
	 */
	preLoadSession: function() {
		graphParticles = new Array();
		sessionControl.loadSession();
	},
	
	/*
	 * Control whether the Session Trail is visible or hidden.
	 * Globals: trailVisible
	 */ 
	trailControl: function() {
		graphHTMLControl.closeContexts();
	
		var sessionTrailDiv = document.getElementById("orderOfVisits");
		var showHideButton = document.getElementById("show-hide");
		if (trailVisible) {
			sessionTrailDiv.style.display = "none";
			showHideButton.setAttribute("value", "Show Session Trail");
			trailVisible = false;
		} else {
			sessionTrailDiv.style.display = "block";
			showHideButton.setAttribute("value", "Hide Session Trail");
			trailVisible = true;
		}
	}
}